The present invention relates generally to computer animation and graphics, and more particularly to techniques for determining a position of a component of an inverse kinematics (IK) controlled animated object relative to a surface object and updating the state of the animated object based upon the determination.
Animation involves the generation of a series of still images that, when played back in quick succession, appear as continuously moving. In computer animation, a rendering process is used to generate a two-dimensional image of a three-dimensional scene from a given viewpoint. Animated sequences can be created by rendering a sequence of the rendered images of a scene as a scene is gradually changed over time. A great deal of effort has been devoted to making the rendered images and the resultant animation realistic.
Typically, animated objects do not need to know about the environment during an animation process. However, in certain situations, an animated object needs to know about its environment in order to be positioned appropriately with respect to the environment to increase the realism of the animation. For example, an IK controlled character with appendages such as feet being needs to know about the ground so that the feet are properly positioned on the ground when animated so as to provide a physically realistic look, e.g., not penetrating ground and not floating. The character also has to be able to react to changes in terrain of the ground. For example, the terrain changes may correspond to variations in height such as hills or depressions. These terrain changes may not be part of the ground surface representation but instead may be represented by displacement maps in the shader code or additional objects placed on the surface. This cannot be handled by conventional techniques that handle interactions between two surfaces and require that surface characteristics be part of environment surface.
Additionally, manually adjusting interactions between a character's feet or other appendages and a bumpy or uneven terrain adds a heavy layer of work to an animator's already labor-intensive process. Animators need to tweak the positions and orientations of the feet to make them conform to the ground precisely, neither floating above nor penetrating the ground. Determining foot contact can be difficult where the terrain is complex, e.g., with hills, stairs, rocks and other uneven surface features. Keeping feet on the ground generally is not a one-time task. Whenever the ground environment or animation is changed, animators have to readjust the foot. They find managing foot-ground contact to be a tedious job.
Therefore it is desirable to provide improved techniques that overcome the above and other problems.